<?xml version="1.0" encoding="utf-8" ?>
<Model xmlns="http://euss.evaluant.com/schemas/MetaDataModel.xsd">

	<Entity type="SerializableTypes" >
		<Attribute name="StringCollection" type="System.Collections.Specialized.StringCollection, System" />
	</Entity>

	<Entity type="ValueTypes">
		<Attribute name="decimal" type="System.Decimal" />
		<Attribute name="uint" type="System.UInt32" />
		<Attribute name="byte" type="System.Byte" />
		<Attribute name="ulong" type="System.UInt64" />
		<Attribute name="string" type="System.String" />
		<Attribute name="int" type="System.Int32"  />
		<Attribute name="ushort" type="System.UInt16" />
		<Attribute name="bool" type="System.Boolean" />
		<Attribute name="double" type="System.Double" />
		<Attribute name="sbyte" type="System.SByte" />
		<Attribute name="long" type="System.Int64" />
		<Attribute name="short" type="System.Int16" />
		<Attribute name="float" type="System.Single" />
		<Attribute name="char" type="System.Char" />
		<Attribute name="object" type="System.Byte[]" />
		<Attribute name="object2" type="System.String" />
	</Entity>

	<Entity type="Person" inherit="HumanBeing">
		<Attribute name="Age" type="System.Int32" />
		<Attribute name="Lastname" type="System.String" />
		<Attribute name="Firstname" type="System.String" />
		<Attribute name="Acceleration" type="System.Decimal" />
		<Attribute name="ShortDescription" type="System.String" />
		<Attribute name="Date" type="System.DateTime" />

		<Reference name="Prout" type="Person" fromMany="false" toMany="false" />
		<Reference name="Partners" type="Person" fromMany="true" toMany="true" />
		<Reference name="Subsidiaries" type="Person" fromMany="true" toMany="true" />
		<Reference name="Brother" type="Person" fromMany="true" toMany="false" />
		<Reference name="Friends" type="Thing" fromMany="true" toMany="true" />
		<Reference name="MyCompany" type="Company" fromMany="true" toMany="false" />
		<Reference name="BestFriend" type="Person" fromMany="true" toMany="false" />
		<Reference name="MyKind" type="Kind" fromMany="true" toMany="false" />
		<Reference name="Address" type="Address" composition="true" fromMany="false" toMany="false" />
		<Reference name="ToMany" type="Thing" fromMany="false" toMany="true" />
	</Entity>

	<Entity type="Kind">
		<Attribute name="Name" type="System.String" />
		<Attribute name="Value" type="System.Int32" />
	</Entity>

	<Entity type="Address">
		<Attribute name="City" type="System.String" />
	</Entity>

	<Entity type="Employee" inherit="Person">
		<Attribute name="Salary" type="System.Single" />
	</Entity>

	<Entity type="Secretary" inherit="Employee">
		<Attribute name="Bonus" type="System.Int32" />
	</Entity>

	<Entity type="Worker" inherit="Employee">
		<Attribute name="Place" type="System.String" />
	</Entity>

	<Entity type="Thing"  >
		<Attribute name="Firstname" type="System.String" />
		<Attribute name="Lastname" type="System.String" />
	</Entity>

	<Entity type="Manager" >
		<Reference name="MyCompany" type="Company" composition="false" />
	</Entity>

	<Entity type="Company" >
		<Attribute name="Name" type="System.String" />
	</Entity>

	<Entity type="FlaggedCategory" >
		<Attribute name="FlaggedCategory" type="System.Int32" />
	</Entity>

	<Entity type="Category" >
		<Attribute name="Category" type="System.String" />
	</Entity>

	<Entity type="ComplexTypes">
		<Attribute name="datetime" type="System.DateTime" />
		<Attribute name="timespan" type="System.TimeSpan" />
		<Attribute name="array1" type="System.String[]" />
		<Attribute name="array2" type="System.Int32[]" />
	</Entity>

	<!--	Test for abstract class	-->
	<Entity type="A">
		<Attribute name="a" type="System.String" />
	</Entity>

	<Entity type="B" inherit="A">
		<Attribute name="b" type="System.String" />
	</Entity>

	<Entity type="C" inherit="A">
		<Attribute name="c" type="System.String" />
	</Entity>

	<!--	Test for children sub types	-->

	<Entity type="Test:D">
		<Attribute name="d" type="System.String" />
		<Reference name="Refs" type="Test:E" fromMany="true" toMany="true" />
	</Entity>

	<Entity type="Test:D_Sub" inherit="Test:D">
		<Attribute name="dp" type="System.String" />
	</Entity>

	<Entity type="Test:E">
		<Attribute name="e" type="System.String" />
	</Entity>

	<Entity type="Test:F" inherit="Test:E">
		<Attribute name="f" type="System.String" />
	</Entity>

	<Entity type="Test:G" inherit="Test:F">
		<Attribute name="g" type="System.String" />
	</Entity>

	<!-- Test for carole's bug -->

	<Entity type="Test:Contract">
		<Attribute name="Heading" type="System.String" />
		<Reference name="MyCompany" type="Test:Company" fromMany="true" toMany="false" />
	</Entity>

	<Entity type="Test:Company">
		<Attribute name="Name" type="System.String" />
	</Entity>

	<!-- Test for linked references : pe.Load("X.YRef.ZRef") -->

	<Entity type="X">
		<Attribute name="xvalue" type="System.String" />
		<Reference name="YRef" type="Y" fromMany="true" toMany="true" />
	</Entity>

	<Entity type="Y">
		<Attribute name="yvalue" type="System.String" />
		<Reference name="ZRef" type="Z" fromMany="true" toMany="false" />
	</Entity>

	<Entity type="Z">
		<Attribute name="zvalue" type="System.String" />
	</Entity>

	<Entity type="U">
		<Attribute name="u" type="System.String" />
		<Reference name="VRef" type="V" composition="true" fromMany="true" toMany="true" />
	</Entity>

	<Entity type="V">
		<Attribute name="v" type="System.String" />
	</Entity>

	<Entity type="ValueNamed" >
		<Attribute name="Name" type="string" />
		<Attribute name="IsValueType" type="bool" />
		<Attribute name="ValueType" type="System.String" />
	</Entity>

	<!-- Many To One Update -->
	<Entity type="Student" >
		<Attribute name="Name" type="string" />
		<Reference name="MyCourse" type="Course" fromMany="true" toMany="false" />
	</Entity>

	<Entity type="Course" >
		<Attribute name="Subject" type="string" />
	</Entity>

	<!-- Many To One Update -->
	<Entity type="Student" >
		<Attribute name="Name" type="string" />
		<Reference name="MyCourse" type="Course" fromMany="true" toMany="false" />
	</Entity>

	<Entity type="Course" >
		<Attribute name="Subject" type="string" />
		<Attribute name="NbHours" type="int" />
	</Entity>

	<!-- Shape model for inheritance -->
	<Entity type="Shape">
		<Attribute name="Name" type="string"/>
		<Attribute name="Position" type="int"/>
	</Entity>

	<Entity type="Figure" inherit="Shape">
		<Reference name="Shapes" type="Shape" />
	</Entity>

	<Entity type="Circle" inherit="Shape">
		<Attribute name="Size" type="int"/>
	</Entity>

	<Entity type="Line" inherit="Shape">
		<Attribute name="PositionEnd" type="int"/>
	</Entity>

	<Entity type="Square" inherit="Shape">
		<Attribute name="Size" type="int"/>
	</Entity>

	<Entity type="Rectangle" inherit="Square">
		<Attribute name="Height" type="int"/>
	</Entity>

	<!-- UniCode Characters -->
	<Entity type="StringType">
		<Attribute name="Str" type="string" />
		<Attribute name="UnicodeStr" type="string"/>
		<Attribute name="StrText" type="string" />
		<Attribute name="UnicodeStrText" type="string" />
	</Entity>
</Model>
